Cambios de biblioteca estándar
Ten en cuenta que todas las funciones nuevas se agregan a la biblioteca estándar en el estado "experimental". Por tal motivo, la actualización en estas bibliotecas te permiten entender la necesidad de tomar un curso de Kotlin.
API de medición de duración y tiempo
Una nueva API de medición de duración y tiempo está disponible para la vista previa. La duración se puede medir en una variedad de unidades: segundos, milisegundos, nanosegundos, etc. La confusión entre las diferentes unidades es una fuente conocida de errores: si la API espera la duración almacenada como valor primitivo como Long, se puede pasar el valor por error. unidad incorrecta, y desafortunadamente el sistema de tipos no ayuda a prevenir eso. Crear una clase regular para almacenar la duración resuelve este problema, pero trae otro: asignaciones adicionales.
Las clases en línea proporcionan una solución muy elegante para eso: aportan tanto garantías de sistema de tipo como un enfoque sin asignación. Ahora la API puede usar el tipo Duración, y todos los clientes deberán especificar el tiempo en las unidades deseadas explícitamente. Dado que la Duración se declara como una clase en línea, no se realizan asignaciones adicionales debajo del capó:
import kotlinx.coroutines.delayimport kotlin.time.* @ExperimentalTimesuspend fun greetAfterTimeout(duration: Duration) { delay(duration.toLongMilliseconds()) println("Hi!")} @UseExperimental(ExperimentalTime::class)suspend fun main() { greetAfterTimeout(100.milliseconds) greetAfterTimeout(1.seconds)}
Ejecución en kotlin v. 1.3.50
Esta versión ofrece soporte para MonoClock, que representa el reloj monotónico. El enfoque recomendado para medir la duración del tiempo desde un punto dado en tu programa es usar el reloj monótono, que no depende de la hora del sistema. La hora del sistema puede cambiarse afuera, y eso puede conducir a un comportamiento erróneo. El reloj monotónico solo puede medir la diferencia de tiempo entre puntos de tiempo dados, pero no conoce la "hora actual".
En breve continuaremos con este tema. Mientras tanto puedes tomar un curso de Javascript y otro curso de PHP.